package com.group3.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class AttendanceLeaveExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public AttendanceLeaveExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andStartLeaveTimeIsNull() {
            addCriterion("start_leave_time is null");
            return (Criteria) this;
        }

        public Criteria andStartLeaveTimeIsNotNull() {
            addCriterion("start_leave_time is not null");
            return (Criteria) this;
        }

        public Criteria andStartLeaveTimeEqualTo(Date value) {
            addCriterion("start_leave_time =", value, "startLeaveTime");
            return (Criteria) this;
        }

        public Criteria andStartLeaveTimeNotEqualTo(Date value) {
            addCriterion("start_leave_time <>", value, "startLeaveTime");
            return (Criteria) this;
        }

        public Criteria andStartLeaveTimeGreaterThan(Date value) {
            addCriterion("start_leave_time >", value, "startLeaveTime");
            return (Criteria) this;
        }

        public Criteria andStartLeaveTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("start_leave_time >=", value, "startLeaveTime");
            return (Criteria) this;
        }

        public Criteria andStartLeaveTimeLessThan(Date value) {
            addCriterion("start_leave_time <", value, "startLeaveTime");
            return (Criteria) this;
        }

        public Criteria andStartLeaveTimeLessThanOrEqualTo(Date value) {
            addCriterion("start_leave_time <=", value, "startLeaveTime");
            return (Criteria) this;
        }

        public Criteria andStartLeaveTimeIn(List<Date> values) {
            addCriterion("start_leave_time in", values, "startLeaveTime");
            return (Criteria) this;
        }

        public Criteria andStartLeaveTimeNotIn(List<Date> values) {
            addCriterion("start_leave_time not in", values, "startLeaveTime");
            return (Criteria) this;
        }

        public Criteria andStartLeaveTimeBetween(Date value1, Date value2) {
            addCriterion("start_leave_time between", value1, value2, "startLeaveTime");
            return (Criteria) this;
        }

        public Criteria andStartLeaveTimeNotBetween(Date value1, Date value2) {
            addCriterion("start_leave_time not between", value1, value2, "startLeaveTime");
            return (Criteria) this;
        }

        public Criteria andEndLeaveTimeIsNull() {
            addCriterion("end_leave_time is null");
            return (Criteria) this;
        }

        public Criteria andEndLeaveTimeIsNotNull() {
            addCriterion("end_leave_time is not null");
            return (Criteria) this;
        }

        public Criteria andEndLeaveTimeEqualTo(Date value) {
            addCriterion("end_leave_time =", value, "endLeaveTime");
            return (Criteria) this;
        }

        public Criteria andEndLeaveTimeNotEqualTo(Date value) {
            addCriterion("end_leave_time <>", value, "endLeaveTime");
            return (Criteria) this;
        }

        public Criteria andEndLeaveTimeGreaterThan(Date value) {
            addCriterion("end_leave_time >", value, "endLeaveTime");
            return (Criteria) this;
        }

        public Criteria andEndLeaveTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("end_leave_time >=", value, "endLeaveTime");
            return (Criteria) this;
        }

        public Criteria andEndLeaveTimeLessThan(Date value) {
            addCriterion("end_leave_time <", value, "endLeaveTime");
            return (Criteria) this;
        }

        public Criteria andEndLeaveTimeLessThanOrEqualTo(Date value) {
            addCriterion("end_leave_time <=", value, "endLeaveTime");
            return (Criteria) this;
        }

        public Criteria andEndLeaveTimeIn(List<Date> values) {
            addCriterion("end_leave_time in", values, "endLeaveTime");
            return (Criteria) this;
        }

        public Criteria andEndLeaveTimeNotIn(List<Date> values) {
            addCriterion("end_leave_time not in", values, "endLeaveTime");
            return (Criteria) this;
        }

        public Criteria andEndLeaveTimeBetween(Date value1, Date value2) {
            addCriterion("end_leave_time between", value1, value2, "endLeaveTime");
            return (Criteria) this;
        }

        public Criteria andEndLeaveTimeNotBetween(Date value1, Date value2) {
            addCriterion("end_leave_time not between", value1, value2, "endLeaveTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeIsNull() {
            addCriterion("start_time is null");
            return (Criteria) this;
        }

        public Criteria andStartTimeIsNotNull() {
            addCriterion("start_time is not null");
            return (Criteria) this;
        }

        public Criteria andStartTimeEqualTo(Date value) {
            addCriterion("start_time =", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotEqualTo(Date value) {
            addCriterion("start_time <>", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeGreaterThan(Date value) {
            addCriterion("start_time >", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("start_time >=", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeLessThan(Date value) {
            addCriterion("start_time <", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeLessThanOrEqualTo(Date value) {
            addCriterion("start_time <=", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeIn(List<Date> values) {
            addCriterion("start_time in", values, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotIn(List<Date> values) {
            addCriterion("start_time not in", values, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeBetween(Date value1, Date value2) {
            addCriterion("start_time between", value1, value2, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotBetween(Date value1, Date value2) {
            addCriterion("start_time not between", value1, value2, "startTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNull() {
            addCriterion("end_time is null");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNotNull() {
            addCriterion("end_time is not null");
            return (Criteria) this;
        }

        public Criteria andEndTimeEqualTo(Date value) {
            addCriterion("end_time =", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotEqualTo(Date value) {
            addCriterion("end_time <>", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThan(Date value) {
            addCriterion("end_time >", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("end_time >=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThan(Date value) {
            addCriterion("end_time <", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThanOrEqualTo(Date value) {
            addCriterion("end_time <=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeIn(List<Date> values) {
            addCriterion("end_time in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotIn(List<Date> values) {
            addCriterion("end_time not in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeBetween(Date value1, Date value2) {
            addCriterion("end_time between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotBetween(Date value1, Date value2) {
            addCriterion("end_time not between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andAttendanceIdIsNull() {
            addCriterion("attendance_id is null");
            return (Criteria) this;
        }

        public Criteria andAttendanceIdIsNotNull() {
            addCriterion("attendance_id is not null");
            return (Criteria) this;
        }

        public Criteria andAttendanceIdEqualTo(Integer value) {
            addCriterion("attendance_id =", value, "attendanceId");
            return (Criteria) this;
        }

        public Criteria andAttendanceIdNotEqualTo(Integer value) {
            addCriterion("attendance_id <>", value, "attendanceId");
            return (Criteria) this;
        }

        public Criteria andAttendanceIdGreaterThan(Integer value) {
            addCriterion("attendance_id >", value, "attendanceId");
            return (Criteria) this;
        }

        public Criteria andAttendanceIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("attendance_id >=", value, "attendanceId");
            return (Criteria) this;
        }

        public Criteria andAttendanceIdLessThan(Integer value) {
            addCriterion("attendance_id <", value, "attendanceId");
            return (Criteria) this;
        }

        public Criteria andAttendanceIdLessThanOrEqualTo(Integer value) {
            addCriterion("attendance_id <=", value, "attendanceId");
            return (Criteria) this;
        }

        public Criteria andAttendanceIdIn(List<Integer> values) {
            addCriterion("attendance_id in", values, "attendanceId");
            return (Criteria) this;
        }

        public Criteria andAttendanceIdNotIn(List<Integer> values) {
            addCriterion("attendance_id not in", values, "attendanceId");
            return (Criteria) this;
        }

        public Criteria andAttendanceIdBetween(Integer value1, Integer value2) {
            addCriterion("attendance_id between", value1, value2, "attendanceId");
            return (Criteria) this;
        }

        public Criteria andAttendanceIdNotBetween(Integer value1, Integer value2) {
            addCriterion("attendance_id not between", value1, value2, "attendanceId");
            return (Criteria) this;
        }

        public Criteria andStudentIdIsNull() {
            addCriterion("student_id is null");
            return (Criteria) this;
        }

        public Criteria andStudentIdIsNotNull() {
            addCriterion("student_id is not null");
            return (Criteria) this;
        }

        public Criteria andStudentIdEqualTo(String value) {
            addCriterion("student_id =", value, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdNotEqualTo(String value) {
            addCriterion("student_id <>", value, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdGreaterThan(String value) {
            addCriterion("student_id >", value, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdGreaterThanOrEqualTo(String value) {
            addCriterion("student_id >=", value, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdLessThan(String value) {
            addCriterion("student_id <", value, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdLessThanOrEqualTo(String value) {
            addCriterion("student_id <=", value, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdLike(String value) {
            addCriterion("student_id like", value, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdNotLike(String value) {
            addCriterion("student_id not like", value, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdIn(List<String> values) {
            addCriterion("student_id in", values, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdNotIn(List<String> values) {
            addCriterion("student_id not in", values, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdBetween(String value1, String value2) {
            addCriterion("student_id between", value1, value2, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdNotBetween(String value1, String value2) {
            addCriterion("student_id not between", value1, value2, "studentId");
            return (Criteria) this;
        }

        public Criteria andLessonIdIsNull() {
            addCriterion("lesson_id is null");
            return (Criteria) this;
        }

        public Criteria andLessonIdIsNotNull() {
            addCriterion("lesson_id is not null");
            return (Criteria) this;
        }

        public Criteria andLessonIdEqualTo(Integer value) {
            addCriterion("lesson_id =", value, "lessonId");
            return (Criteria) this;
        }

        public Criteria andLessonIdNotEqualTo(Integer value) {
            addCriterion("lesson_id <>", value, "lessonId");
            return (Criteria) this;
        }

        public Criteria andLessonIdGreaterThan(Integer value) {
            addCriterion("lesson_id >", value, "lessonId");
            return (Criteria) this;
        }

        public Criteria andLessonIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("lesson_id >=", value, "lessonId");
            return (Criteria) this;
        }

        public Criteria andLessonIdLessThan(Integer value) {
            addCriterion("lesson_id <", value, "lessonId");
            return (Criteria) this;
        }

        public Criteria andLessonIdLessThanOrEqualTo(Integer value) {
            addCriterion("lesson_id <=", value, "lessonId");
            return (Criteria) this;
        }

        public Criteria andLessonIdIn(List<Integer> values) {
            addCriterion("lesson_id in", values, "lessonId");
            return (Criteria) this;
        }

        public Criteria andLessonIdNotIn(List<Integer> values) {
            addCriterion("lesson_id not in", values, "lessonId");
            return (Criteria) this;
        }

        public Criteria andLessonIdBetween(Integer value1, Integer value2) {
            addCriterion("lesson_id between", value1, value2, "lessonId");
            return (Criteria) this;
        }

        public Criteria andLessonIdNotBetween(Integer value1, Integer value2) {
            addCriterion("lesson_id not between", value1, value2, "lessonId");
            return (Criteria) this;
        }

        public Criteria andAttendanceTypeIsNull() {
            addCriterion("attendance_type is null");
            return (Criteria) this;
        }

        public Criteria andAttendanceTypeIsNotNull() {
            addCriterion("attendance_type is not null");
            return (Criteria) this;
        }

        public Criteria andAttendanceTypeEqualTo(Integer value) {
            addCriterion("attendance_type =", value, "attendanceType");
            return (Criteria) this;
        }

        public Criteria andAttendanceTypeNotEqualTo(Integer value) {
            addCriterion("attendance_type <>", value, "attendanceType");
            return (Criteria) this;
        }

        public Criteria andAttendanceTypeGreaterThan(Integer value) {
            addCriterion("attendance_type >", value, "attendanceType");
            return (Criteria) this;
        }

        public Criteria andAttendanceTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("attendance_type >=", value, "attendanceType");
            return (Criteria) this;
        }

        public Criteria andAttendanceTypeLessThan(Integer value) {
            addCriterion("attendance_type <", value, "attendanceType");
            return (Criteria) this;
        }

        public Criteria andAttendanceTypeLessThanOrEqualTo(Integer value) {
            addCriterion("attendance_type <=", value, "attendanceType");
            return (Criteria) this;
        }

        public Criteria andAttendanceTypeIn(List<Integer> values) {
            addCriterion("attendance_type in", values, "attendanceType");
            return (Criteria) this;
        }

        public Criteria andAttendanceTypeNotIn(List<Integer> values) {
            addCriterion("attendance_type not in", values, "attendanceType");
            return (Criteria) this;
        }

        public Criteria andAttendanceTypeBetween(Integer value1, Integer value2) {
            addCriterion("attendance_type between", value1, value2, "attendanceType");
            return (Criteria) this;
        }

        public Criteria andAttendanceTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("attendance_type not between", value1, value2, "attendanceType");
            return (Criteria) this;
        }

        public Criteria andRealStartTimeIsNull() {
            addCriterion("real_start_time is null");
            return (Criteria) this;
        }

        public Criteria andRealStartTimeIsNotNull() {
            addCriterion("real_start_time is not null");
            return (Criteria) this;
        }

        public Criteria andRealStartTimeEqualTo(Date value) {
            addCriterion("real_start_time =", value, "realStartTime");
            return (Criteria) this;
        }

        public Criteria andRealStartTimeNotEqualTo(Date value) {
            addCriterion("real_start_time <>", value, "realStartTime");
            return (Criteria) this;
        }

        public Criteria andRealStartTimeGreaterThan(Date value) {
            addCriterion("real_start_time >", value, "realStartTime");
            return (Criteria) this;
        }

        public Criteria andRealStartTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("real_start_time >=", value, "realStartTime");
            return (Criteria) this;
        }

        public Criteria andRealStartTimeLessThan(Date value) {
            addCriterion("real_start_time <", value, "realStartTime");
            return (Criteria) this;
        }

        public Criteria andRealStartTimeLessThanOrEqualTo(Date value) {
            addCriterion("real_start_time <=", value, "realStartTime");
            return (Criteria) this;
        }

        public Criteria andRealStartTimeIn(List<Date> values) {
            addCriterion("real_start_time in", values, "realStartTime");
            return (Criteria) this;
        }

        public Criteria andRealStartTimeNotIn(List<Date> values) {
            addCriterion("real_start_time not in", values, "realStartTime");
            return (Criteria) this;
        }

        public Criteria andRealStartTimeBetween(Date value1, Date value2) {
            addCriterion("real_start_time between", value1, value2, "realStartTime");
            return (Criteria) this;
        }

        public Criteria andRealStartTimeNotBetween(Date value1, Date value2) {
            addCriterion("real_start_time not between", value1, value2, "realStartTime");
            return (Criteria) this;
        }

        public Criteria andRealEndTimeIsNull() {
            addCriterion("real_end_time is null");
            return (Criteria) this;
        }

        public Criteria andRealEndTimeIsNotNull() {
            addCriterion("real_end_time is not null");
            return (Criteria) this;
        }

        public Criteria andRealEndTimeEqualTo(Date value) {
            addCriterion("real_end_time =", value, "realEndTime");
            return (Criteria) this;
        }

        public Criteria andRealEndTimeNotEqualTo(Date value) {
            addCriterion("real_end_time <>", value, "realEndTime");
            return (Criteria) this;
        }

        public Criteria andRealEndTimeGreaterThan(Date value) {
            addCriterion("real_end_time >", value, "realEndTime");
            return (Criteria) this;
        }

        public Criteria andRealEndTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("real_end_time >=", value, "realEndTime");
            return (Criteria) this;
        }

        public Criteria andRealEndTimeLessThan(Date value) {
            addCriterion("real_end_time <", value, "realEndTime");
            return (Criteria) this;
        }

        public Criteria andRealEndTimeLessThanOrEqualTo(Date value) {
            addCriterion("real_end_time <=", value, "realEndTime");
            return (Criteria) this;
        }

        public Criteria andRealEndTimeIn(List<Date> values) {
            addCriterion("real_end_time in", values, "realEndTime");
            return (Criteria) this;
        }

        public Criteria andRealEndTimeNotIn(List<Date> values) {
            addCriterion("real_end_time not in", values, "realEndTime");
            return (Criteria) this;
        }

        public Criteria andRealEndTimeBetween(Date value1, Date value2) {
            addCriterion("real_end_time between", value1, value2, "realEndTime");
            return (Criteria) this;
        }

        public Criteria andRealEndTimeNotBetween(Date value1, Date value2) {
            addCriterion("real_end_time not between", value1, value2, "realEndTime");
            return (Criteria) this;
        }

        public Criteria andLeaveIdIsNull() {
            addCriterion("leave_id is null");
            return (Criteria) this;
        }

        public Criteria andLeaveIdIsNotNull() {
            addCriterion("leave_id is not null");
            return (Criteria) this;
        }

        public Criteria andLeaveIdEqualTo(Integer value) {
            addCriterion("leave_id =", value, "leaveId");
            return (Criteria) this;
        }

        public Criteria andLeaveIdNotEqualTo(Integer value) {
            addCriterion("leave_id <>", value, "leaveId");
            return (Criteria) this;
        }

        public Criteria andLeaveIdGreaterThan(Integer value) {
            addCriterion("leave_id >", value, "leaveId");
            return (Criteria) this;
        }

        public Criteria andLeaveIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("leave_id >=", value, "leaveId");
            return (Criteria) this;
        }

        public Criteria andLeaveIdLessThan(Integer value) {
            addCriterion("leave_id <", value, "leaveId");
            return (Criteria) this;
        }

        public Criteria andLeaveIdLessThanOrEqualTo(Integer value) {
            addCriterion("leave_id <=", value, "leaveId");
            return (Criteria) this;
        }

        public Criteria andLeaveIdIn(List<Integer> values) {
            addCriterion("leave_id in", values, "leaveId");
            return (Criteria) this;
        }

        public Criteria andLeaveIdNotIn(List<Integer> values) {
            addCriterion("leave_id not in", values, "leaveId");
            return (Criteria) this;
        }

        public Criteria andLeaveIdBetween(Integer value1, Integer value2) {
            addCriterion("leave_id between", value1, value2, "leaveId");
            return (Criteria) this;
        }

        public Criteria andLeaveIdNotBetween(Integer value1, Integer value2) {
            addCriterion("leave_id not between", value1, value2, "leaveId");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}